The challenge of software complexity.odt - NeoOffice Writer
نویسندگان
چکیده
Given the interdisciplinary nature of complex network studies, there is a practical need for dialogue between theorists proposing graph measurements and those seeking to apply them into a domain. We consider this in the domain of software complexity by highlighting the distinctive nature of networks representing software's internal structure and also by describing the application of one such proposal, the offdiagonal complexity, against two examples of software. The results showed the promise of using complex networks to measure software complexity but also demonstrated the confounding effects of size. Based on that application we make proposals to improve the dialogue between theory and experiment. Software's importance and the need to measure complexity Today's society is heavily dependant on software. It runs our computers, our phones and the internet, while managing economies and communications. This pervasiveness means that any improvement in understanding software has a potentially enormous payback from better project management, control of costs and increased quality. Past practice of software development could be seen as a chimera of art-form and engineering with success or failure in projects seemingly dependent on anecdotal wisdoms. While a comprehensive theoretical framework seems elusive, current and future practice has become increasingly evidence-based and draws from a wide range of disciplines such as psychology, sociology, data-mining and complexity theories. That software is complex is also largely self-evident. Brooks (1987) (of “The Mythical Man-Month” fame) argues that complexity is one of the fundamental essences associated with software. As such, understanding this inherent property would make great inroads into understanding software overall. While there are several viewpoints into software such as its cognitive, computational, problem or solution complexity (Cardoso et al. 2000), this paper focuses on the structural complexity of the code, arguing that it provides the most direct understanding of the product. Software as a complex network The variety of coding languages, styles and paradigms makes processing and quantifying code hard to generalise. One solution is to abstract the code into a network graph, with vertices representing a chosen unit of code and edges representing an arbitrary relationship between those units. By representing the interconnections between collaborating modules, objects, classes, methods, and subroutines with a network graph, software becomes another domain capable of investigation with the interdisciplinary toolset of complex networks. The basic technique is well established (Myers 2003; Valverde & Solé 2003) and while more recent developments have for instance considered graphing the entire socio-technical system (Bird et al. 2009), obtaining a measurement that represents the complexity of source code's basic structure and that can be connected to software development practice remains desirable.
منابع مشابه
Adjusting Single-/Multi-writer to False Sharing in Software DSMs
Two approaches are employed to deal with false sharing in software DSMs. Although single-writer is simple, it causes the ping-pong effect of the data page thrashing. In other hand, multiple-writer approach, which is eeective in re-duing the amount of page transfer, suuers from the high cost. This paper proposes a new approach to handle multiple writers in software DSMs called limited multiple-w...
متن کاملGRAWIS: Groningen Automatic Writer Identification System
In the last several years, we developed new and very effective techniques for automatic writer identification that use probability distribution functions extracted the handwriting images to characterize writer individuality. The demonstration will present a html-based visualization tool that we recently built in order to be able to directly see and assess the results generated by our writer ide...
متن کاملPrediction of Writer Using Tamil Handwritten Document Image Based on Pooled Features
Abstract—Tamil handwritten document is taken as a key source of data to identify the writer. Tamil is a classical language which has 247 characters include compound characters, consonants, vowels and special character. Most characters of Tamil are multifaceted in nature. Handwriting is a unique feature of an individual. Writer may change their handwritings according to their frame of mind and t...
متن کاملA spell-checker and thesaurus for Bambara (Bamanankan) (Un vérificateur orthographique pour la langue bambara) [in French]
A spell-checker and thesaurus for the Bambara language (Bamanankan), based on an electronic version of a dictionary of Bambara, Bamadaba, ported to a standard spell-check engine, Hunspell, and made available (through their respective web sites) for Libre Office, Open Office, Neo Office, Mozilla Firefox and Thunderbird, as well as Adobe Indesign and other software using the Hunspell engine. The ...
متن کاملStatic and dynamic features for writer identification based on multi-fractals
Writer identification still remains as a challenge area in the field of off-line handwriting recognition because only an image of the handwriting is available. Consequently, some information on the dynamic of writing, which is valuable for identification of writer, is unavailable in the off-line approaches, contrary to the on-line ones where temporal and spatial information about the writing ar...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012